import pandas as pd
import matplotlib.pyplot as plt
#在pandas 中  dataFrame 表格（表头 和 内容）  series（字典 key是索引是编号）
filepath = 'data/电商用户浏览数据.txt'
header = ['编号','产品名称','价格','用户姓名','出生日期','身高','性别','地区','开始时间','结束时间']
keys = list(range(10)) #range产生0-9的数字 list 转换成列表
print(keys)
headerdict = dict(zip(keys,header)) #zip两个列表组合成字典dict
print(headerdict)
user_goods = pd.read_table(filepath, sep=',', header=None, encoding='utf-8')  # header=none 表示数据文件没有字段名
user_goods.reset_index() #重置索引
user_goods.rename(columns=headerdict, inplace=True) #换表头
print(type(user_goods))
print(user_goods)
print('--------从dataframe中切出 指定的列------------')
user_goods_names = user_goods.loc[:,'产品名称']  #：之后 ，之前的参数是从编号几开始 ：号之后是截取到哪为止
print(user_goods_names.isnull())
u_g_name_isnull = user_goods_names[user_goods_names.isnull().values==True]
print(type(u_g_name_isnull))       #dataframe条件判断后的结果 形成了一个遮罩series
delindexs = u_g_name_isnull.index  #series是key value形式它的 的index是一维数组 values是一维数组
print('----------索引--------')
deluser_goods = user_goods.drop(delindexs,inplace=True)
print(user_goods['产品名称'].isnull())
#方式二
deluser_goods = user_goods.drop(user_goods[user_goods['产品名称'].isnull()].index,inplace=True)
user_goods_new = user_goods.drop(user_goods[user_goods['产品名称'].isnull()].index,inplace=True)
#print(deluser_goods)
print(user_goods)
#找出各产品的受欢迎程度,groupby函数 得到按照指定的series列的 分组的结果 DataFrameGroupBy
groupbySerise = user_goods['价格'].groupby(user_goods['产品名称']).count()
namelist = list(groupbySerise.keys())
valueList = list(groupbySerise)
print(namelist)
print(valueList)
#画图#准备画布
plt.figure(figsize=(30,100))
#准备数据集
#设定类型画图显示
plt.bar(range(len(namelist)),valueList)
plt.xticks(range(len(namelist)),namelist)
plt.savefig('./1.png')
plt.show()
